﻿using System.Data.Common;

namespace SX.Core.Data
{
    /// <summary>
    /// 数据提供者接口
    /// </summary>
    public interface IDataProvider
    {
        /// <summary>
        /// 初始化连接工厂
        /// </summary>
        void InitConnectionFactory();

        /// <summary>
        /// 设置数据库初始化
        /// </summary>
        void SetDatabaseInitializer();

        /// <summary>
        /// 数据库初始化
        /// </summary>
        void InitDatabase();

        /// <summary>
        /// 指定数据库是否支持存储过程
        /// </summary>
        bool StoredProceduredSupported { get; }

        /// <summary>
        /// 取得一个支持数据库参数对象（存储过程使用）
        /// </summary>
        /// <returns>参数对象</returns>
        DbParameter GetParameter();
    }
}
